var baidusearchinput = (function(){

    var conf = {
        control_init: function ($searchInput, $hiddenSearchInput) {//,_callback) {
            //关闭浏览器提供给输入框的自动完成
            $searchInput.attr('autocomplete', 'off');
            //创建自动完成的下拉列表，用于显示服务器返回的数据,插入在搜索按钮的后面，等显示的时候再调整位置
            
            var $autocomplete = $('<div class="autocomplete"></div>')
                .hide()
                .insertAfter($searchInput);
            //清空下拉列表的内容并且隐藏下拉列表区
            var clear = function () {
                $autocomplete.empty().hide();
            };
            //注册事件，当输入框失去焦点的时候清空下拉列表并隐藏
            $searchInput.blur(function () {
                setTimeout(clear, 500);
            });
            //下拉列表中高亮的项目的索引，当显示下拉列表项的时候，移动鼠标或者键盘的上下键就会移动高亮的项目，想百度搜索那样
            var selectedItem = null;
            //timeout的ID
            var timeoutid = null;
            //设置下拉项的高亮背景
            var setSelectedItem = function (item) {
                //更新索引变量
                selectedItem = item;
                //按上下键是循环显示的，小于0就置成最大的值，大于最大值就置成0
                if (selectedItem < 0) {
                    selectedItem = $autocomplete.find('li').length - 1;
                }
                else if (selectedItem > $autocomplete.find('li').length - 1) {
                    selectedItem = 0;
                }
                //首先移除其他列表项的高亮背景，然后再高亮当前索引的背景
                $autocomplete.find('li').removeClass('highlight')
                    .eq(selectedItem).addClass('highlight');
            };
            var ajax_request = function () {
                //ajax服务端通信
                $hiddenSearchInput.val("");
                if($searchInput.val().length > 0){
                    //console.log("-+-+-+-+-+-+",$searchInput.val());
                    //console.log("$searchInput.val().length",$searchInput.val().length);
                    $.ajax({
                        url: Wz_url + 'SpeciesSearch/' + $searchInput.val(), //服务器的地址/Ecological/getInputWZInfo
                        //data: { 'ids': $searchInput.val() }, //参数{ 'searchtext': $searchInput.val() }
                        headers: {
                                   "Authorization":tokenStr
                                  },
                        dataType: 'json', //返回数据类型
                        type: 'GET', //请求类型
                        success: function (data) {
                            // var data = result.wzbody;
                            // console.log("------YXQWZGL/getWZInfo---start--");
                            console.log(Wz_url,data);
                            // console.log("------YXQWZGL/getWZInfo---end--");
                             if(data.reMessage != null){
                            	alert(data.reMessage);
                             }
                            if (data.length) {
                                //遍历data，添加到自动完成区
                                $.each(data, function (index, term) {
                                    //alert(term.bhqid);
                                    //创建li标签,添加到下拉列表中
                                    $('<li id="' + term.WZDM + '" style="border-bottom: 1px dashed #0080ff"></li>').text(term.WZMC).appendTo($autocomplete)
                                        .addClass('clickable')
                                        .hover(function () {
                                            //下拉列表每一项的事件，鼠标移进去的操作
                                            $(this).siblings().removeClass('highlight');
                                            $(this).addClass('highlight');
                                            selectedItem = index;
                                        }, function () {
                                            //下拉列表每一项的事件，鼠标离开的操作
                                            $(this).removeClass('highlight');
                                            //当鼠标离开时索引置-1，当作标记
                                            selectedItem = -1;
                                        })
                                        .click(function () {
                                            //鼠标单击下拉列表的这一项的话，就将这一项的值添加到输入框中
                                            $searchInput.val(term.WZMC);
                                            $hiddenSearchInput.val(term.WZDM);
                                            //_callback($autocomplete.find('li').eq(selectedItem).attr("id"));
                                            //清空并隐藏下拉列表
                                            $autocomplete.empty().hide();

                                        });
                                });//事件注册完毕
                                //设置下拉列表的位置，然后显示下拉列表
                                var ypos = $searchInput.position().top;
                                var xpos = $searchInput.position().left;
                                // $autocomplete.css('width', $searchInput.css('width'));
                                // $autocomplete.css({ 'position': 'relative', 'left': (xpos) + "px", 'top': (ypos - 50) + "px", 'z-index': 1899 });
                                setSelectedItem(0);
                                //显示下拉列表
                                $autocomplete.show();
                            }
                        }
                    }); 
                }
                // 得到草本物种审核标志 -------- 新增物种审核标志 ----- 开始
                var spans = new Array();
                for(var i=1; i<=$("#CBWZMC"+i+"").length; i++){           
                    if($("#form_CBidone .table_border tbody #CBtr"+i+">td.WZMC>input[type='text']").val() != null && $("#form_CBidone .table_border tbody #CBtr"+i+">td.WZMC>input[type='text']").val()){
                        // $("#cb_list a").attr("id")
                        spans[i-1] = {}}}
                var CBWZSHBZ = "";
                for(var i=0; i<spans.length; i++){
                    CBWZSHBZ += 0 + ',';
                }
                if(spans.length > 0){
                    CBWZSHBZ = CBWZSHBZ.substr(0, CBWZSHBZ.length - 1);
                    $("input[name=CBWZSHBZ]").val(CBWZSHBZ);
                }

                // 得到灌木物种审核标志
                var spans = new Array();
                for(var i=1; i<=$("#GMWZMC"+i+"").length; i++){//obj_Ecological.CByfID
                    if($("#form_GMidone .table_tab tbody #GMtr"+i+">td.WZMC>input[type='text']").val() != null && $("#form_GMidone .table_tab tbody #GMtr"+i+">td.WZMC>input[type='text']").val() != ""){
                        // $("#cb_list a").attr("id")
                        spans[i-1] = {}}}
                var GMWZSHBZ = "";
                for(var i=0; i<spans.length; i++){
                    GMWZSHBZ += 0 + ',';
                }
                if(spans.length > 0){
                    GMWZSHBZ = GMWZSHBZ.substr(0, GMWZSHBZ.length - 1);
                    $("input[name=GMWZSHBZ]").val(GMWZSHBZ);
                }
                // 得到草本物种审核标志 -------- 新增物种审核标志 ----- 结束
            };
            //对输入框进行事件注册
            $searchInput
                .keyup(function (event) {
                    console.log("event.keyCode  " + event.keyCode);
                    //字母数字，退格，空格
                    if (event.keyCode > 40 || event.keyCode == 8 || event.keyCode == 32) {
                        //首先删除下拉列表中的信息
                        $autocomplete.empty().hide();
                        clearTimeout(timeoutid);
                        timeoutid = setTimeout(ajax_request, 100);
                    }
                    else if (event.keyCode == 38) {
                        //上
                        //selectedItem = -1 代表鼠标离开
                        if (selectedItem == -1) {
                            setSelectedItem($autocomplete.find('li').length - 1);
                        }
                        else {
                            //索引减1
                            setSelectedItem(selectedItem - 1);
                        }
                        event.preventDefault();
                    }
                    else if (event.keyCode == 40) {
                        //下
                        //selectedItem = -1 代表鼠标离开
                        if (selectedItem == -1) {
                            setSelectedItem(0);
                        }
                        else {
                            //索引加1
                            setSelectedItem(selectedItem + 1);
                        }
                        event.preventDefault();
                    }
                })
                .keypress(function (event) {
                    //enter键
                    if (event.keyCode == 13) {
                        //列表为空或者鼠标离开导致当前没有索引值
                        if ($autocomplete.find('li').length == 0 || selectedItem == -1) {
                            return;
                        }
                        $searchInput.val($autocomplete.find('li').eq(selectedItem).text());
                        //_callback($autocomplete.find('li').eq(selectedItem).attr("id"));
                        $autocomplete.empty().hide();
                        event.preventDefault();
                    }
                })
                .keydown(function (event) {
                    //esc键
                    if (event.keyCode == 27) {
                        $autocomplete.empty().hide();
                        event.preventDefault();
                    }
                });
            //注册窗口大小改变的事件，重新调整下拉列表的位置
            $(window).resize(function () {
                // var ypos = $searchInput.position().top;
                // var xpos = $searchInput.position().left;
                // $autocomplete.css('width', $searchInput.css('width'));
                // $autocomplete.css({ 'position': 'relative', 'left': xpos + "px", 'top': ypos + "px" });
            });
        }
    }

    /*return {
        get:function(name){
            return conf[name] ? conf[name] : null;
        }
    }*/
    return conf;
}())